C++ 二维数组a[3,4],a[0]是地址还是数据?

来源:百度知道 编辑:UC知道 时间:2024/06/22 00:28:20
如题?书上说第0行的起始地址是&a[0],那就是说a[0]应该是第一个元素的值了?
但是又说a[0]为一维数组名,该一维数组中序号为1的元素地址为a[0]+1。这样说来a[0]也应该是地址吧……
亲~你确定二维的也是这样的吗?书上说第一行第二个元素地址是a[0]+1……跟你说的不一样啊……

你要理解 a[0] 和 &a[0]所代表的意义是不一样的。
比如:int a[10]
则 a 代表数组的首地址,&a代表的是这种数据类型的地址。

所以对于a[3][4] 则a,a[0] 为a的起始地址,即a[0][0]的地址。

当把a[0]看做第0行时,它代表一种数据类型,其里面有4个整型数。所以&a[0]是第0行的起始地址。
&a[0] + k 代表在&a[0]的基础上偏移了k个a[k][4]。

对于一位数组a[0]的确是一个值..
但对于多维数组,,举个例子
对于a[4][5],,a[0]是a[0][n]的地址..
就像对于一位数组a[4],a就是他的地址一样..
不知道这样说你明不明白..
还有,,类似这样的问题..你可以用 "&"和"*"符号写一些测试代码..
看输出的是什么就知道了..

a[0]是数据
如果a[0]=1
哪么a[0]+1是2
1号元素的地址是&a[0+1]

a[0]代表的是地址,你可以看成是3行4列的矩阵,a[0]代表第一行的首地址。。因为是二维数组